The invention relates to communications systems generally and, more particularly, the invention relates to an efficient scheme for acquiring desired data, such as table or sequence data, from a packetized data stream.
In several communications systems the data to be transmitted is compressed so that the available bandwidth is used more efficiently. For example, the Moving Pictures Experts Group (MPEG) has promulgated several standards relating to digital data delivery systems. The first, known as MPEG-1 refers to ISO/IEC standards 11172 and is incorporated herein by reference. The second, known as MPEG-2, refers to ISO/IEC standards 13818 and is incorporated herein by reference. A compressed digital video system is described in the Advanced Television Systems Committee (ATSC) digital television standard document A/53, and is incorporated herein by reference.
Information distribution systems utilizing information streams conforming to the above standards or subsets of the above standards arc known. For example, an interactive digital video on demand (VOD) service known as the OnSet(trademark) system is manufactured by DIVA Systems Corporation of Menlo Park, Calif. The OnSet(trademark) system distributes audio-visual information to individual subscribers utilizing MPEG-like information streams. The OnSet(trademark) system also allows subscribers to interactively control the delivery of audio-visual information using consumer-friendly commands, such as fast-forward (FF), rewind (REW), pause (PAUSE), play (PLAY) and the like.
The above-referenced standards, and other similar standards, provide for the delivery of proprietary data in addition to audio, video and other data to receiving and decoding devices, such as set top terminal (STTs). The proprietary data may be formatted into, e.g., an MPEG-2 standard private section format or the similar DigiCipher(copyright)II (DCII) format, which is used in STTs manufactured by General Instrument Corporation of Horsham, Pa. Using DCII terminology, proprietary data may be organized as one or more tables (i.e., logical groupings of data), where each table comprises one or more messages or segments. The messages or segments are then transport encoded in a known manner to produce a transport stream that is coupled to one or more STTs.
A STT decodes the transport stream in a known manner to extract the messages or segments. During the decoding process an error check, such as a circular redundancy check (CRC), is performed for each message or segment. If the message or segment is error-free, then it is passed to a controller for further processing (e.g., table re-assembly) by an application running within the STT. If the message or segment is not error-free, then an error handler is invoked. The typical error handler discards a message or segment having errors without notifying the application expecting to receive the message or segment.
Therefore, it is seen to be desirable to provide a method and apparatus that is able to compensate for the tendency of some STTs to discard or miss data segments without application notification. Specifically, it is seen to be desirable to provide a method and apparatus for tracking the delivery and re-assembly of received messages or segments into complete tables or sections, such that applications may readily ascertain whether necessary data structures have been received by, e.g., a STT or other information receiver.
The invention comprises data structure a method and apparatus providing efficient retrieval of data from a segmented information stream. The invention utilizes a segmented data stream having an initial directory payload portion and a following payload portion including one or more object tables. The directory includes table descriptors associated with each object table including various field indicative of parameters of the respective object table. One of the fields comprises a bit array having at least one bit corresponding to each of the segments in the respective object table. By changing a state of a corresponding bit upon receiving a table segment, the memory and processing resources required to read the segments associated with a table are decreased.
Specifically, a data structure according to the invention for providing at least one table within a segmented information stream comprising: a header portion, including a stream type identifier; and a payload portion, including a directory and the at least one table; the directory occupying at least a first segment within the payload portion of the information stream and including, for each of the at least one tables, a respective table description record, the table description record including indicia of table type and number of table segments, the table description record also including a segment bit array field, the segment bit array field including at least one bit corresponding to each of the number of table segments; the at least one table occupying one or more contiguous segments within the payload portion of the information stream.